1. Field of Invention
The present invention relates to routing of calls within switched digital networks such as an integrated switched digital network (ISDN).
2. Prior Art
An ISDN is a digital end-to-end telecommunications network of wide bandwidth which supports voice, data and other services. ISDN is defined by a set of internationally agreed standards specified in the so-called "Blue books" of recommendations of the International Telegraph and Telephone Consultative Committee (CCITT). Further information about ISDN can be found in, for example, "ISDN Explained" by J. Griffiths (Wiley, 1990) and "ISDN: An Introduction" by W. Stallings (MacMillan, 1989).
In communications systems supporting switched networks, because several users share the same circuits, it is often necessary for each system to have call control mechanisms for routing incoming calls to one of several possible application programs (i.e. user-level computer programs) and for making outgoing calls to remote systems or devices. For present purposes "a system" is intended to refer to a processor and any related components connected thereto. In an ISDN, the actual routing of outgoing calls is controlled by the underlying network using information provided as part of the call control mechanism.
To make an outgoing call requires a combination of different types of call control information: address details of the called party and whatever security information is required by the called party. Information as to the communications protocol to be used in the call may also be required. The communications protocol governs the procedures used to exchange information between parties to the call. A protocol definition generally includes specifications of message formats, sequencing rules concerning messages, and interpretation rules. Examples of ISDN protocols are X25, LAPB, and SDLC (information on such protocols is available in the aforementioned CCITT Blue books and the book "ISDN Explained"). Most communications systems do not support interactive negotiation of protocols; instead the calling party attempts to make a call using a specific protocol in combination with specific security and address information, and the called party either rejects or accepts the call and the call is routed according to this specific call information.
Control over the routing of an individual system's incoming calls to specific application programs may use security and protocol information without any address information. Alternatively, an address information component may also be used.
Call information for both incoming and outgoing calls is often held in the named entries of a call control table, allowing call-related application programs to share the common information in the call control table. This also allows information to be changed by updating table entries rather than by changing application programs, which can be expensive and inconvenient. Such a call control table is used in the IBM ISDN Coprocessor Support Program Version 1.1 (IBM is a registered trademark of International Business Machines Corporation).
A call control table is normally built and updated by a configuration process performed by the system user. The user generally creates a file in which each entry comprises a call type name and a particular combination of call control information such as address, security and protocol details. Application-dependent information may also be included. For call control tables for outgoing calls, the call type name is generally the called party number of a network entity (i.e. of a particular processor within the network, or of an individual end-point device or application program at a shared processor) but may be some other designation of that entity. The file is then loaded into accessible memory (When the relevant communications network is an ISDN, this may be the memory of an ISDN Adapter). In attempting to make a call to a remote entity, a system user or local application program specifies the type of call to be made in terms of the name which has been given to a particular call type, which can be the name of the called entity. The call control table for outgoing calls is scanned to detect a matching entry of call control information for the specified call type and, if a match is found, the call control information is passed to the network, which uses it to route the call. At the processor of: the called entity, a call control table is scanned for entries corresponding to the call control information transmitted by the network. If a corresponding entry is found it is then determined whether a particular entity will accept the call. A called entity such as an application program running at a data processor within the network can state which call types it wishes to receive and make by specifying entries of the relevant call control information in the call control table.
One of the problems with such call control tables is that there may be considerable duplication of information across the table (for example with a number of different entries including the same protocol information) and, since all separate entries must be updated when any changes to the call control table are required, changes to the table are time consuming and error prone. Furthermore, since the system user must define the call information of each entry in his call control table, each user creates a different table which is not portable to other systems in the network.